iT邦幫忙

2023 iThome 鐵人賽

DAY 19
0

Hello, 各位 iT 邦幫忙 的粉絲們大家好~~~

在本系列文會延續 Re: 從零改用 .NET MAUI 技術來繼續過去用 Xamarin 技術開發的一個 App : TopStore 使用 .NET MAUI 技術所建立的 TopStore App ,更新 .NET MAUI 在 .NET 6 轉換到 .NET 7 時所需要調整的部分,並持續地的開發 TopStore App 其他需要的功能。

本篇是 Re: 從零續用 .NET MAUI 技術開發過去的一個 App : TopStore 系列 系列文的 EP19。


上一回 EP18 介紹到透過 OrdersPage 的 "新增",開始新增訂單而進入而 "聯絡人列表" 時,需要把下方的分頁頁籤給 "隱藏"。

若只是要單純隱藏下方的分頁頁籤的這部分其實不難,只要找到 PeoplePage 並在其 ContnetPage 的標記中,增加以下設定:

 Shell.TabBarIsVisible="False"

即可隱藏分頁頁籤,如下圖:
01

但要考慮的是在非 "下訂單" 的狀況下,"聯絡人列表" 下方的分頁頁籤就不需 "隱藏",因此設定值會有可能不同的設定機會,以下就來調整一下吧!

在 Utilities 的 ValueConverter 底下增加一個 BoolReverseValueConverter 的類別設計,其中的類別程式碼如下:

using System.Globalization;

namespace TopStoreApp.Utilities.ValueConveters;

public class BoolReverseValueConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return !(bool)value;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return !(bool)value;
    }
}

完成結果如下圖:
02

接著找到先前在 App.xaml 當中設計的 valueconveters:BoolToTwoStringValueConverter 並在其後再增加一個 Resource 的宣告:

<valueconveters:BoolReverseValueConverter x:Key="BoolReverseValueConverter" />

完成結果如下圖:
03

回到 PeoplePage 將前述 ContnetPage 標記的 Shell.TabBarIsVisible 設定值改成如下:

Shell.TabBarIsVisible="{Binding IsOrder, Converter={StaticResource BoolReverseValueConverter}}"

完成結果如下圖:
04

接著找到 ViewModels 當中的 PeoplePageViewMode,並幫其設計增加接收參數與設定的 IsOrder 屬性。

增加路由參數處理:

[QueryProperty(nameof(IsOrderQueryString), "isOrder")]

增加可繫結屬性:

[ObservableProperty]
private bool _isOrder;

public string IsOrderQueryString
{
    set
    {
        IsOrder = bool.Parse(value);
    }
}

完成結果如下圖:
05

即可達成本 EP 要完成的目的了唷~~~

看看以下的呈現結果:
06-Android


上一篇
EP18
下一篇
EP20
系列文
Re: 從零續用 .NET MAUI 技術開發過去的一個 App : TopStore 系列30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言